/**

 @Name：layuiAdmin iframe版主入口
 @Author：贤心
 @Site：http://www.layui.com/admin/
 @License：LPPL
    
 */

layui.extend({
  setter: 'config' //配置模块
  , admin: 'lib/admin' //核心模块
  , view: 'lib/view' //视图渲染模块
}).define(['setter', 'admin'], function (exports) {
  var setter = layui.setter
    , element = layui.element
    , admin = layui.admin
    , tabsPage = admin.tabsPage
    , view = layui.view

    //打开标签页
    , openTabsPage = function (url, text) {
      if (url === 'javascript:;') return
      //遍历页签选项卡
      var matchTo
        , tabs = $('#LAY_app_tabsheader>li')
        , path = url.replace(/(^http(s*):)|(\?[\s\S]*$)/g, '');

      tabs.each(function (index) {
        var li = $(this)
          , layid = li.attr('lay-id');

        if (layid === url) {
          matchTo = true;
          tabsPage.index = index;
        }
      });

      text = text || '新标签页';

      //定位当前tabs
      var setThisTab = function () {
        element.tabChange(FILTER_TAB_TBAS, url);
        admin.tabsBodyChange(tabsPage.index, {
          url: url
          , text: text
        });
      };

      if (setter.pageTabs) {
        //如果未在选项卡中匹配到，则追加选项卡
        if (!matchTo) {
          //延迟修复 Firefox 空白问题
          setTimeout(function () {
            $(APP_BODY).append([
              '<div class="layadmin-tabsbody-item layui-show">'
              , '<iframe src="' + url + '" frameborder="0" class="layadmin-iframe"></iframe>'
              , '</div>'
            ].join(''));
            setThisTab();
          }, 10);

          tabsPage.index = tabs.length;
          element.tabAdd(FILTER_TAB_TBAS, {
            title: '<span>' + text + '</span>'
            , id: url
            , attr: path
          });

        }
      } else {
        var iframe = admin.tabsBody(admin.tabsPage.index).find('.layadmin-iframe');
        iframe[0].contentWindow.location.href = url;
      }

      setThisTab();
    }
    , loadHome = function (v) {
      // console.log(v)
      $('#LAY_app_body').append(
        `
        <div class="layadmin-tabsbody-item layui-show">
          <iframe src="${v.menuPath}" frameborder="0" class="layadmin-iframe"></iframe>
        </div> 
        `
      )
      $('#LAY_app_tabsheader').append(
        ` <li lay-id="console.html" lay-attr="${v.menuPath}" class="layui-this"><i
        class="layui-icon layui-icon-home"></i></li>
        `
      )
      $('.page-loading').hide()
    }
    , APP_BODY = '#LAY_app_body', FILTER_TAB_TBAS = 'layadmin-layout-tabs'
    , $ = layui.$, $win = $(window);

  //初始
  if (admin.screen() < 2) admin.sideFlexible();

  //将模块根路径设置为 controller 目录
  layui.config({
    base: setter.base + 'modules/'
  });

  //扩展 lib 目录下的其它模块
  layui.each(setter.extend, function (index, item) {
    var mods = {};
    mods[item] = '{/}' + setter.base + 'lib/extend/' + item;
    layui.extend(mods);
  });

  view().autoRender();

  //加载公共模块
  layui.use('common');

  //对外输出
  exports('index', {
    openTabsPage: openTabsPage,
    loadHome: loadHome
  });
});
